/*
 * Copyright 2004-2005 公司名
 * 本软件及其所有拷贝的名称，与光盘上或本软件中注明的公司同在。
 * 本软件及文档享有版权，并受国家版权法及国际协约条款的保护。
 * 您不可以从本软件中去掉其版权声明；并保证为本软件的拷贝（本部或部分）* 复制版权声明。
 * 您同意制止以任何形式非法拷贝本软件及文档。
 * 版权信息参见：
 *      http://www.companyname.cn/licenses
 */

package com.companyname.common.userdefined.model;

import java.io.Serializable;

import java.util.List;
import java.util.LinkedHashSet;
import java.util.Vector;
import java.util.Set;


import com.companyname.common.base.model.BaseObject;

/**
 * <p>Title: 定制列</p>
 * <p>Description: TransferObject </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: 公司名</p>
 * @ $Author: author $
 * @ $Date: 2004/12/17 13:54:17 $
 * @ $Revision: 1.4 $
 * @ created in 2005-12-21
 *
 */

public class ConfigColumn extends BaseObject
                          implements Serializable
{
        private String id;

        private String userId;

        private String configedServiceURL;

        private String columnSort;

        private String titleSort;

        /**
         * 构造函数
         */
        public ConfigColumn()
        {
                // for hibernate
        }

        public ConfigColumn(String id)
        {
                this.id = id;
        }

        /** 选用框架提供的pri解决方案，必须 */
        public Serializable getIdentity()
        {
                return this.id;
        }

        public String getId()
        {
                return this.id;
        }

        public void setId(String id)
        {
                this.id = id;
        }

        public String getUserId()
        {
                return  this.userId;
        }

        public void setUserId(String userId)
        {
                this.userId = userId;
        }

        public String getConfigedServiceURL()
        {
                return this.configedServiceURL;
        }

        public void setConfigedServiceURL(String serviceURL)
        {
                this.configedServiceURL = serviceURL;
        }

        public String getColumnSort()
        {
                return this.columnSort;
        }

        public void setColumnSort(String columnSort)
        {
                this.columnSort = columnSort;
        }

        public String[] getColumnSorts()
        {
                this.columnSort = this.columnSort.replaceAll("-",",");
                return this.columnSort.split(",");
        }

        public String getTitleSort()
        {
                return this.titleSort;
        }

        public void setTitleSort(String titleSort)
        {
                this.titleSort = titleSort;
        }

        public String[] getTitleSorts()
        {
                return this.titleSort.split(",");
        }

        public String[] getTitleSortsValues()
        {
                return this.columnSort.split(",");
        }

        /** 采用id匹配(会影响到hibernate批量新增)还是全部属性值匹配(编码麻烦) */
        public boolean equals(Object object)
        {
                if (!(object instanceof ConfigColumn))
                {
                        return false;
                }
                ConfigColumn configColumn = (ConfigColumn) object;
                return ( this.id.equals(configColumn.getId())
                       &(this.getPri().equals(configColumn.getPri()))
                       );
        }

        public int hashCode()
        {
                return ("ConfigColumn" + this.id + "_" + this.getPri()).hashCode();
        }

        /** 采用框架提供的操作日志必须填写的项目 */
        public void setModeldetail()
        {
                this.setModelFieldDetail("id",this.id);
                this.setModelFieldDetail("调整服务url",this.configedServiceURL);
                this.setModelFieldDetail("(一级)标题项序列",this.columnSort);
                this.setModelFieldDetail("字段项序列",this.titleSort);
        }
}
